package com.teaching.teachingsupport.common.utils;

import org.springframework.util.StringUtils;

public class SearchKeyUtil {
    /**
     * 判断搜索关键字类型
     * @param searchKey 搜索关键字
     * @return SearchKeyType 搜索关键字类型
     */
    public static SearchKeyType analyzeSearchKeyType(String searchKey) {
        if (!StringUtils.hasText(searchKey)) {
            return SearchKeyType.UNKNOWN;
        }

        // 学生学号格式：S + 年级后两位 + 学院编号(2位) + 序号(4位)，例如 S23010001
        if (searchKey.matches("^S\\d{8}$")) {
            return SearchKeyType.STUDENT_NO;
        }

        // 教师工号格式：T + 学院编号(2位) + 序号(4位)，例如 T010001
        if (searchKey.matches("^T\\d{6}$")) {
            return SearchKeyType.TEACHER_NO;
        }

        // 管理员工号格式：A + 序号(4位)，例如 A0001
        if (searchKey.matches("^A\\d{4}$")) {
            return SearchKeyType.ADMIN_NO;
        }

        // 如果包含中文，可能是姓名
        if (searchKey.matches(".*[\\u4E00-\\u9FA5]+.*")) {
            return SearchKeyType.NAME;
        }

        return SearchKeyType.UNKNOWN;
    }

    public enum SearchKeyType {
        STUDENT_NO,   // 学生学号
        TEACHER_NO,   // 教师工号
        ADMIN_NO,     // 管理员工号
        NAME,         // 姓名
        UNKNOWN       // 未知类型
    }
} 